package com.zzyl.vo;

import com.aliyun.tea.NameInMap;
import com.zzyl.base.BaseVo;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import java.util.List;

@Data
@ApiModel("设备信息响应模型")
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class DeviceVo extends BaseVo {
	//------------------------------设备主体数据-----------------------------------
	// 物联网设备ID
	private String iotId;
	// 设备名称
	private String deviceName;
	// 产品名称
	@NameInMap("ProductName")
	public String productName;
	// 设备密钥
	@NameInMap("DeviceSecret")
	public String deviceSecret;
	// 产品key
	@NameInMap("ProductKey")
	public String productKey;
	// 设备状态
	@NameInMap("Status")
	public String status;
	// 绑定位置
	private Long bindingLocation;
	// 物理位置类型
	private Integer physicalLocationType;
	// 位置名称回显字段
	private String deviceDescription;
	// 产品是否包含门禁，0：否，1：是
	private Integer haveEntranceGuard;
	
	//------------------------------设备详细数据-----------------------------------
	// 设备备注名称
	@NameInMap("Nickname")
	public String nickname;
	// 位置类型 0 随身设备 1固定设备
	private Integer locationType;
	// 地域
	@NameInMap("Region")
	public String region;
	//节点类型
	@NameInMap("NodeType")
	public Integer nodeType;
	//IP地址
	@NameInMap("IpAddress")
	public String ipAddress;
	//固件版本
	@NameInMap("FirmwareVersion")
	public String firmwareVersion;
	// 基于地球自转创建时间
	@NameInMap("GmtCreate")
	public String gmtCreate;
	// 基于地球自转激活时间
	@NameInMap("GmtActive")
	public String gmtActive;
	// 基于地球自转上线时间
	@NameInMap("GmtOnline")
	public String gmtOnline;
	//基于原子钟创建时间
	@NameInMap("UtcCreate")
	public String utcCreate;
	//基于原子钟激活时间
	@NameInMap("UtcActive")
	public String utcActive;
	//基于原子钟上线时间
	@NameInMap("UtcOnline")
	public String utcOnline;
	// 设备所有者
	@NameInMap("Owner")
	public Boolean owner;
	
	//------------------------------关联设备数据集合--------------------------
	private List<DeviceDataVo> deviceDataVos;
}
